/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entidades;
import tipos.Nome;
import tipos.Telefone;
/**
 * Classe que modela uma pessoa no nosso modelo.
 * @author Daniel Saad
 */
public class Pessoa {
    /**
     * atributos nome.
     */
    private String nome;
    /**
     * atributo telefone.
     */
    private String telefone;

    /**
     * Construtor.
     * @param nomeParam nome do objeto a ser construido
     * @param telefoneParam do objeto a ser construido
     * @exception NullPointerException
     * @exception IllegalArgumentException
     */
    public Pessoa(final String nomeParam, final String telefoneParam) {
        setNome(nomeParam);
        setTelefone(telefoneParam);
    }

    /**
     * Construtor Vazio.
     */
    public Pessoa() {

    }

    /**
     * Método get.
     * @return nome fornece o nome da pessoa.
     */
    public final String getNome() {
        return (this.nome);
    }
    /**
     * Método set.
     * @param nomeParam seta o nome da pessoa
     * @exception NullPointerException
     * @exception IllegalArgumentException
     */
    public final void setNome(final String nomeParam) {
        try {
            Nome.validar(nomeParam);
            this.nome = nomeParam;
        } catch (NullPointerException excecao) {
            throw excecao;
        } catch (IllegalArgumentException excecao) {
            throw excecao;
        }
    }
    /**
     * Método get.
     * @return telefone retorna o telefone da pessoa
     */
    public final String getTelefone() {
        return (this.telefone);
    }
    /**
     * Método set.
     * @param telefoneParam seta o telefone da pessoa
     * @exception NullPointerException
     * @exception IllegalArgumentException
     */
    public final void setTelefone(final String telefoneParam) {
        Telefone.validar(telefoneParam);
        this.telefone = telefoneParam;
    }
}
